package com.ym.medical.domain.entity;

import com.ym.common.constant.BaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.base.enums.FlagEnum;
import com.ym.medical.enums.AuditStateEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Table;
import java.util.Date;

/**
 * 主题回复对象 subject_reply
 *
 * @author ym
 * @date 2020-08-24
 */
@ApiModel("主题回复-实体")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "subject_reply")
public class SubjectReplyEntity extends BaseEntity{

    private static final long serialVersionUID = 1L;

    /**
     * 用户(评论者)ID
     */
    @ApiModelProperty("用户(评论者)ID")
    private Long userId;

    /**
     * 主题ID
     */
    @ApiModelProperty("主题ID")
    private Long subjectId;

    /**
     * 被回复ID(父级节点ID)
     */
    @ApiModelProperty("被回复ID(父级节点ID)")
    private Long parentId;

    /**
     * 附件ID
     */
    @ApiModelProperty("附件ID")
    private String attrId;

    /**
     * 回复内容
     */
    @ApiModelProperty("回复内容")
    private String content;

    /**
     * 审核人
     */
    @ApiModelProperty("审核人")
    private Long auditSb;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    private Date auditTime;

    /**
     * 审核状态 (01- 待审核 02-审核中 03-审核通过 04-审核未通过)
     */
    @ApiModelProperty("审核状态 (01- 待审核 02-审核中 03-审核通过 04-审核未通过)")
    @JsonSerialize(converter = AuditStateEnum.Covert.class)
    private String auditState;

    /**
     * 审核说明
     */
    @ApiModelProperty("审核说明")
    private String auditRemark;

    /**
     * 点赞数
     */
    @ApiModelProperty("点赞数")
    private Integer likeNum;

    /**
     * 回复时间
     */
    @ApiModelProperty("回复时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 删除标志
     */
    @ApiModelProperty("删除标志")
    @JsonSerialize(converter = FlagEnum.Covert.class)
    private String deleted;

}
